/*            Copyright(c) 2006-2008 Dave Sexton           *
 * http://www.codeplex.com/DocProject                      *
 * http://www.codeplex.com/DocProject/Project/License.aspx *
 ***********************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using DaveSexton.DocProject.Configuration;

namespace DaveSexton.DocProject
{
	public interface IDocProject : IAnyProject
	{
		#region Public Properties
		IEnumerable<SystemPath> Dependencies { get; }

		ICollection<ISourceProject> ProjectSources { get; }

		SourceCollection ExternalSources { get; }

		SourceCollection AllSources { get; }

		DocProjectOptions Options { get; }

		/// <remarks>
		/// The set accessor is used by the New Project Wizard so that the user may change the selected build engine
		/// before the wizard is complete.  This property must not be assigned by user code or there may be undesired 
		/// results.
		/// </remarks>
		BuildEngineProvider Provider { get; set; }

		bool IsDocSite { get; }
		#endregion

		#region Events
		event EventHandler<SystemPathEventArgs> ReferenceAdded;
		event EventHandler<SystemPathEventArgs> ReferenceChanged;
		event EventHandler<SystemPathEventArgs> ReferenceRemoved;
		#endregion
	}
}
